﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml.Linq;
using Biblioteca.Utils;
using System.Threading;

namespace SERIX
{
    public partial class TerritorioManut : Seguranca
    {

        string _operacao;
        string _idt_ter;
        string _tabelaName;
        
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["SeExiste"] != null)
            {
                lblErro.Visible = true;
                lblErro.Text = "Já existe um Território de nome " + Session["SeExiste"].ToString() + ".";
                Session.Remove("SeExiste");
            }
            base.OnLoad(e);
            switch (Criptografia.Descriptografar(Request["tpo"]))
            {
                case "C": 
                    {
                        _tabelaName = "_CID";
                         lblTitulo.Text = "Cadastro dos Territórios Cidadania";
                         break; 
                    }
                case "P": 
                    { 
                        _tabelaName = ""; 
                        break;
                        lblTitulo.Text = "Cadastro dos Territórios Planjamento";
                    }
            }

            _operacao = Request["OP"];
            if (!String.IsNullOrEmpty(Request["idt_ter"]))
            {
                _idt_ter = Server.UrlDecode(Criptografia.Descriptografar(Request["idt_ter"]));
            }
            if (!Page.IsPostBack)
            {
                ViewState["DataTable"] = CTerritorios.ObterDescricoes(_tabelaName, UsuAut.Login);
                switch (_operacao)
                {                        
                    case "R":
                        {                            
                            Cancelar_Button.Visible = false;
                            CTerritorios territorio = CTerritorios.PesquisaporCodigo(_idt_ter, UsuAut.Login,_tabelaName);
                            tbDSC_TER.Text = territorio.Dsc_ter;
                            DesabilitaControles();
                            break;
                        }
                    case "U":
                        {
                            CTerritorios territorio = CTerritorios.PesquisaporCodigo(_idt_ter, UsuAut.Login,_tabelaName);
                            tbDSC_TER.Text = territorio.Dsc_ter;
                            break;

                        }
                    case "I":
                        {
                            break;
                        }
                    case "D":
                        {
                            CTerritorios territorio = CTerritorios.PesquisaporCodigo(_idt_ter, UsuAut.Login,_tabelaName);
                            tbDSC_TER.Text = territorio.Dsc_ter;
                            DesabilitaControles();
                            break;
                        }
                    default: break;
                }
            }
            tbDSC_TER.Focus();
        }

        protected void DesabilitaControles()
        {
            tbDSC_TER.Enabled = false;
            tbDSC_TER.BorderStyle = System.Web.UI.WebControls.BorderStyle.None;
            tbDSC_TER.BackColor = System.Drawing.Color.WhiteSmoke;
        }

        protected void Ok_Button_Click(object sender, EventArgs e)
        {
            try
            {
                
                CTerritorios territorio;
                if (String.IsNullOrEmpty(_idt_ter) && _operacao[0].Equals('I'))
                {
                    _idt_ter = CTerritorios.ObterNovoIdt(UsuAut.Login,_tabelaName).ToString();
                }
                
                territorio = new CTerritorios(_idt_ter, tbDSC_TER.Text);
                switch (_operacao)
                {
                    case "I":
                        {
                            //Verifica se nome que pretende ser inserido já não existe no banco
                            int fim = ((DataTable)ViewState["DataTable"]).Rows.Count;
                            for (int i = 0; i < fim; i++)
                            {
                                if (Biblio.TirarAcentos(tbDSC_TER.Text).ToUpper() == Biblio.TirarAcentos(((DataTable)ViewState["DataTable"]).Rows[i].ItemArray[0].ToString().ToUpper()))
                                {
                                    Session["SeExiste"] = tbDSC_TER.Text;
                                    Response.Redirect(Request.RawUrl);
                                }

                            }
                            territorio.Inserir(UsuAut.Login, _tabelaName);
                            break;
                        }
                    case "U":
                        {
                            territorio.Alterar(UsuAut.Login,_tabelaName);
                            break;
                        }
                    case "D":
                        {
                            territorio.Excluir(UsuAut.Login,_tabelaName);
                            break;
                        }
                    default: break;
                }
                Response.Redirect("Territorios.aspx?tpo="+Request["tpo"]);
            }
            catch (Exception ex)
            {
                lblErro.Text = "*Erro: " + ex.Message;
                lblErro.Visible = true;
            }
        }

        protected void Cancelar_Button_Click(object sender, EventArgs e)
        {
            Response.Redirect("Territorios.aspx?tpo="+Request["tpo"]);
        }
    }
}
